Chod hore
Predchádzajúca stránka Nasledujúca stránka Začiatok kapitoly Koniec kapitoly Začiatok kurzu Koniec kurzu


7.3 Premenné typu znak


V premennej typu znak môžeme uložiť ľubovolný ASCII znak. V pamäti zaberá 1 Byte.

Var C1, C2 : Char ;


Možné priradenia:

C1 := 'A' ; C2 := C1 ; C1 := ^L ;
C2 := #65 ; { je to identické príkazu C2 := 'A' }


Znakovú konštantu môžeme zadať jeho poradovým číslom napr. #12, alebo ako riadiaci znak ^L. Riadiace znaky sú v ASCII tabuľke znaky od 1 po 26 a môžeme ich zadať ako ^A až ^Z. Tieto názvy pochádzajú z toho, že zadať ich môžeme z klávesnice súčasným stlačením klávesy Ctrl a príslušného písmena.

Privedieme niekoľko funkcií so znakovými typmi:

Ord(C)funkcia vracia kód ASCII znaku.
Chr(I)funkcia vracia znak s ASCII kódom I.
UpCase(C)funkcia vracia veľké písmeno namiesto malého. Má účinok iba pre písmená


Tento typ je ordinárny - jeho prvky tvoria usporiadanú množinu. Menším je vždy ten prvok, ktorý má nižší ASCII kód. Môžeme pre nich používať všetky funkcie, ktoré sú definované pre ordinárne typy (napr. Pred, Succ, Dec, Inc). Pod ordinárnym typom rozumiem také typy, prvky ktorých môžeme prečíslovať.

Úloha
Načítajme znak, potom vypíšme jeho ASCII kód, predchádzajúci, nasledujúci znak a tvar jeho veľkého písmena.

Zdrojový program:

Obr7_5


Často sa stáva, že chceme uložiť taký znak (do znakovej premennej a neskôr ho zobraziť na obrazovke), ktorý nie je na klávesnici (z rôznych dôvodov). Môžeme to urobiť nasledujúcim spôsobom:

  • Vyhľadajte v ASCII tabuľke jeho ASCII kód.
  • Stlačte klávesu Alt a zapíšte jeho ASCII kód pomocou numerických kláves.

Napr. znak b môžeme zadať ako ALT-225, ale iba ak nebola zmenená definícia hornej znakovej sady pomocou nejakého programu.
Zadať takéto hodnoty znakovej premennej môžeme nasledujúcimi dvoma spôsobmi:

C := 'á' ;
C := #160 ;



7.4 Logické typy


Logická (Boolean) premenná má dve hodnoty TRUE (pravda) a False (nepravda). Môžeme ich zadať aj ako konštanty.

Var Logicke : Boolean ;

Tento typ je pomenovaný po anglickom matematikovi z 19. storočia Georga Booleho, ktorý je považovaný za tvorcu symbolickej logiky.

Premenná zaberá v pamäti 1 Byte, hoci skutočná informácia je obsiahnutá v 1 bite (najnižšom): False = 0, True = 1.

Výsledok porovnania dvoch hodnôt rovnakého typu môže byť pravda alebo nepravda. Napr. pre celočíselnú premennú N výraz N<4 podľa momentálnej hodnoty premennej N môže byť pravdivý aj nie a preto sa oplatí uchovať jeho hodnotu ako premennú.

Logicke := N < 4 ;

Nad logickými premennými môžeme používať operácie NOT, AND, OR a XOR.

Logicke := (N < 4) AND (N > 0) ;

Výsledky týchto operácií uvedieme v tvare tabuliek:

Obr7_6
Obr7_7


Poradie vykonávania operácií je nasledovný: najprv sa vykonajú tie, ktoré sa nachádzajú vo vnútri zátvoriek. Ak nie sú zátvorky, potom najprv sa vyhodnotí NOT, potom AND a nakoniec OR resp. XOR (posledné dve operácie majú rovnakú prioritu). Pokiaľ za sebou idú výrazy s rovnakou prioritou, potom sa vykonávajú v poradí zľava doprava.

Zatiaľ uvedieme iba jednu logickú funkciu:

Odd(I)funkcia vracia hodnotu pravda, ak celé číslo I je nepárne a nepravda, ak celé číslo I je párne.

Do logickej premennej nemôžeme priamo z klávesnice načítať hodnotu! Príkaz Write vypíše na obrazovku reťazec TRUE alebo FALSE.